home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / lib / mntc6846.zoo / signal.h < prev   
Encoding:
C/C++ Source or Header  |  1995-04-23  |  4.0 KB  |  127 lines

  1. #ifndef _SIGNAL_H
  2. #define _SIGNAL_H
  3.  
  4. #ifndef _COMPILER_H
  5. #include <compiler.h>
  6. #endif
  7.  
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11.  
  12. #define    __NSIG        31        /* number of signals recognized */
  13.  
  14. #ifndef _POSIX_SOURCE
  15. # define NSIG __NSIG
  16. #endif /* _POSIX_SOURCE */
  17.  
  18. #define    SIGNULL        0        /* not really a signal */
  19. #define SIGHUP        1        /* hangup signal */
  20. #define SIGINT        2        /* sent by ^C */
  21. #define SIGQUIT        3        /* quit signal */
  22. #define SIGILL        4        /* illegal instruction */
  23. #define SIGTRAP        5        /* trace trap */
  24. #define SIGABRT        6        /* abort signal */
  25. # define SIGIOT SIGABRT
  26. #define SIGPRIV        7        /* privilege violation */
  27. # define SIGEMT SIGPRIV
  28. #define SIGFPE        8        /* divide by zero */
  29. #define SIGKILL        9        /* cannot be ignored */
  30. #define SIGBUS        10        /* bus error */
  31. #define SIGSEGV        11        /* illegal memory reference */
  32. #define SIGSYS        12        /* bad argument to a system call */
  33. #define SIGPIPE        13        /* broken pipe */
  34. #define SIGALRM        14        /* alarm clock */
  35. #define SIGTERM        15        /* software termination signal */
  36.  
  37. #define SIGURG        16        /* urgent condition on I/O channel */
  38. #define SIGSTOP        17        /* stop signal not from terminal */
  39. #define SIGTSTP        18        /* stop signal from terminal */
  40. #define SIGCONT        19        /* continue stopped process */
  41. #define SIGCHLD        20        /* child stopped or exited */
  42. #define SIGTTIN        21        /* read by background process */
  43. #define SIGTTOU        22        /* write by background process */
  44. #define SIGIO        23        /* I/O possible on a descriptor */
  45. #define SIGXCPU        24        /* CPU time exhausted */
  46. #define SIGXFSZ        25        /* file size limited exceeded */
  47. #define SIGVTALRM    26        /* virtual timer alarm */
  48. #define SIGPROF        27        /* profiling timer expired */
  49. #define SIGWINCH    28        /* window size changed */
  50. #define SIGUSR1        29        /* user signal 1 */
  51. #define SIGUSR2        30        /* user signal 2 */
  52.  
  53. #ifndef AssemB
  54.  
  55. typedef void __CDECL (*__Sigfunc) __PROTO((int signum));
  56. typedef short sig_atomic_t;
  57.  
  58. #define       SIG_DFL    ((__Sigfunc)0L)
  59. #define       SIG_IGN    ((__Sigfunc)1L)
  60. #define       SIG_ERR    ((__Sigfunc)-1L)
  61.  
  62. __EXTERN __Sigfunc    signal    __PROTO((int sig, __Sigfunc func));
  63. __EXTERN int        raise    __PROTO((int sig));
  64. __EXTERN int        kill    __PROTO((int, int));
  65. #ifndef _POSIX_SOURCE
  66. __EXTERN int        killpg    __PROTO((int, int));
  67. #endif /* _POSIX_SOURCE */
  68.  
  69. #define _SIGSET_INDEX(__sig)    (__sig / 32)
  70. #define _SIGSET_BITPOS(__sig)    (__sig % 32)
  71. #define _SIGSET_MAX_INDEX    (__NSIG / 32)
  72.  
  73. typedef struct {
  74.   long __sigset_data[_SIGSET_MAX_INDEX + 1];
  75. } sigset_t;
  76.  
  77. #ifdef __MINT__
  78. # ifndef __STRICT_ANSI__
  79. struct sigaction {
  80.     __Sigfunc    sa_handler;    /* pointer to signal handler */
  81.     sigset_t    sa_mask;    /* additional signals masked during delivery */
  82. /* pain here... POSIX forces us to use int, we would prefer short */
  83.     int         sa_flags;    /* signal specific flags */
  84. /* signal flags */
  85. #define SA_NOCLDSTOP    1    /* don't send SIGCHLD when they stop */
  86. };
  87.  
  88. #ifdef __MSHORT__
  89. __EXTERN long    sigsetmask  __PROTO((long mask));
  90. __EXTERN long    sigblock    __PROTO((long mask));
  91. #else
  92. __EXTERN int    sigsetmask  __PROTO((long mask));
  93. __EXTERN int    sigblock    __PROTO((long mask));
  94. #endif
  95. __EXTERN int    sigaction   __PROTO((int, const struct sigaction *,
  96.                     struct sigaction *));
  97. __EXTERN int    sigaddset   __PROTO((sigset_t *set, int signo));
  98. __EXTERN int    sigdelset   __PROTO((sigset_t *set, int signo));
  99. __EXTERN int    sigemptyset __PROTO((sigset_t *set));
  100. __EXTERN int    sigfillset  __PROTO((sigset_t *set));
  101. __EXTERN int    sigismember __PROTO((sigset_t *set, int signo));
  102. __EXTERN int    sigpending  __PROTO((sigset_t *set));
  103. __EXTERN int    sigprocmask __PROTO((int how, const sigset_t *set,
  104.                     sigset_t *oset));
  105. __EXTERN int    sigsuspend  __PROTO((const sigset_t *sigmask));
  106.  
  107. /* values for "how" parameter to sigprocmask() */
  108. #define SIG_BLOCK    0
  109. #define SIG_UNBLOCK    1
  110. #define SIG_SETMASK    2
  111.  
  112. #ifndef _POSIX_SOURCE
  113. /* a mask for signals */
  114. #define sigmask(__sig) (1L << (__sig))
  115. #endif /* _POSIX_SOURCE */
  116.  
  117. # endif /* __STRICT_ANSI__ */
  118. #endif /* __MINT__ */
  119.  
  120. #endif /* AssemB */
  121.  
  122. #ifdef __cplusplus
  123. }
  124. #endif
  125.  
  126. #endif /* _SIGNAL_H */
  127.